home *** CD-ROM | disk | FTP | other *** search
/ TPUG - Toronto PET Users Group / TPUG Users Group CD / TPUG Users Group CD.iso / AMIGA / (A)G / (A)G1.ADF / ABasic_games / Blackjack.bas (.txt) < prev    next >
AmigaBASIC Source Code  |  2008-10-31  |  27KB  |  996 lines

  1. ' Amiga Blackjack by Larry Teter
  2. DEFINT A-Z
  3. RANDOMIZE TIMER
  4. OPTION BASE 0
  5. DIM card(662),Values(18,12),BigSuit(140,3),LittleSuit(24,3),Deck(51,1)
  6. DIM DeckTitle(66),YourTitle(82),MyTitle(66),StandTitle(50),StopSign(662)
  7. DIM CardBack(662),CardXLoc(5),VoiceParm(8),Timbre(255)
  8.   GOSUB InitializeVariables
  9.   GOSUB Logo
  10.   GOSUB ReadGraphics
  11.   Pass=1
  12.   GOSUB ShuffleDeck
  13.   Pass=2
  14.   GOSUB InitializeMenu
  15.   GOSUB SetUpWindow
  16.   GOSUB MessageSetUp
  17.   ON MENU GOSUB MenuHandler
  18.   MENU ON
  19.   SAY TRANSLATE$("Let's get this show on the road!"),VoiceParm
  20. Replay:  
  21.   Turn=1 
  22.   GOSUB AnteUp
  23.   GOSUB DealNewGame
  24.   GOSUB TestForBlackjack
  25.   WHILE Turn=1
  26. WaitForMouse:  
  27.     IF MOUSE(0)=0 THEN WaitForMouse
  28.     WHILE MOUSE(0)<>0
  29.     WEND
  30.     X=MOUSE(1)
  31.     Y=MOUSE(2)
  32.     IF X>5 AND X<115 AND Y>2 AND Y<71 THEN
  33.       GOSUB HitPlayer
  34.     ELSEIF X>5 AND X<115 AND Y>81 AND Y<150 THEN
  35.       IF YourHand2<22 THEN 
  36.         YourHand1=YourHand2
  37.       ELSE
  38.         YourHand2=YourHand1
  39.       END IF
  40.       GOSUB UpdateHandTotal
  41.       Turn=2
  42.     ELSE
  43.       GOTO WaitForMouse
  44.     END IF
  45.     IF YourCardCount=5 AND YourHand1<22 THEN
  46.       GOSUB FiveCardCharlieYou
  47.       Turn=3
  48.     END IF
  49.   WEND
  50.   IF BJ$<>"YES" THEN GOSUB FlipDownCard
  51.   WHILE Turn=2
  52.     IF MyHand2<22 THEN
  53.       MyTotal=MyHand2
  54.     ELSE
  55.       MyTotal=MyHand1
  56.     END IF
  57.     IF MyCardCount=5 AND MyHand1<22 THEN
  58.       GOSUB FiveCardCharlieMe
  59.       Turn=3
  60.     ELSEIF MyTotal>16 THEN
  61.       IF MyTotal>YourHand2 THEN
  62.         Code=MyTotal
  63.         GOSUB Decode
  64.         Message$="My "+Text$
  65.         Message2$="My "+Text2$
  66.         Code=YourHand2
  67.         GOSUB Decode
  68.         Message$=Message$+" beats your "+Text$+" -- I win"
  69.         Message2$=Message2$+" beats your "+Text2$+"  -- I win"
  70.         GOSUB PrintIt      
  71.         IF Speech$="ON" THEN SAY TRANSLATE$(Message2$),VoiceParm
  72.         Turn=3 
  73.         YourTotal&=YourTotal&-Bet
  74.         GOSUB UpdateScore
  75.       ELSEIF MyTotal=YourHand2 THEN
  76.         Message$="It's a push -- I win"
  77.         GOSUB PrintIt
  78.         IF Speech$="ON" THEN SAY TRANSLATE$("It's a push. I win."),VoiceParm
  79.         Turn=3 
  80.         YourTotal&=YourTotal&-Bet
  81.         GOSUB UpdateScore    
  82.       ELSE
  83.         Code=YourHand2
  84.         GOSUB Decode
  85.         Message$="Your "+Text$
  86.         Message2$="Your "+Text2$
  87.         Code=MyTotal
  88.         GOSUB Decode
  89.         Message$=Message$+" beats my "+Text$+" -- You win"
  90.         Message2$=Message2$+" beats my "+Text2$+" -- You win"
  91.         GOSUB PrintIt
  92.         IF Speech$="ON" THEN SAY TRANSLATE$(Message2$),VoiceParm
  93.         Turn=3 
  94.         YourTotal&=YourTotal&+Bet
  95.         GOSUB UpdateScore   
  96.       END IF
  97.     ELSE
  98.       Code=MyTotal
  99.       GOSUB Decode
  100.       Message$="I'm taking a hit on "+Text$
  101.       Message2$="I'm taking a hit on "+Text2$
  102.       GOSUB PrintIt
  103.       IF Speech$="ON" THEN 
  104.         SAY TRANSLATE$(Message2$),VoiceParm
  105.       ELSE
  106.         FOR I=1 TO 2000
  107.         NEXT I
  108.       END IF
  109.       GOSUB HitDealer
  110.     END IF
  111.   WEND
  112.   GOSUB WaitForTapOnDeck
  113.   GOSUB NewHand
  114.   GOSUB UpdateHandTotal
  115.   GOSUB UpdateBet  
  116.   GOSUB EraseCardWindows
  117. GOTO Replay    
  118.  
  119. Decode:
  120.   IF Code=4 THEN
  121.     Text$="four"
  122.     Text2$="four"
  123.   ELSEIF Code=5 THEN
  124.     Text$="five"
  125.     Text2$="five"
  126.   ELSEIF Code=6 THEN
  127.     Text$="six"
  128.     Text2$="six"
  129.   ELSEIF Code=7 THEN
  130.     Text$="seven"
  131.     Text2$="seven"
  132.   ELSEIF Code=8 THEN
  133.     Text$="eight"
  134.     Text2$="eight"
  135.   ELSEIF Code=9 THEN
  136.     Text$="nine"
  137.     Text2$="nine"
  138.   ELSEIF Code=10 THEN
  139.     Text$="ten"
  140.     Text2$="ten"
  141.   ELSEIF Code=11 THEN
  142.     Text$="eleven"
  143.     Text2$="elehven"
  144.   ELSEIF Code=12 THEN
  145.     Text$="twelve"
  146.     Text2$="twelve"
  147.   ELSEIF Code=13 THEN
  148.     Text$="thirteen"
  149.     Text2$="thirrrrtttteeeene"
  150.   ELSEIF Code=14 THEN
  151.     Text$="fourteen"
  152.     Text2$="fourrrrtttteeeene"
  153.   ELSEIF Code=15 THEN
  154.     Text$="fifteen"
  155.     Text2$="fifteeeene"
  156.   ELSEIF Code=16 THEN
  157.     Text$="sixteen"
  158.     Text2$="sixteeeene"
  159.   ELSEIF Code=17 THEN
  160.     Text$="seventeen"
  161.     Text2$="seventeeeene"
  162.   ELSEIF Code=18 THEN
  163.     Text$="eighteen"
  164.     Text2$="eighghghtttteeeene"
  165.   ELSEIF Code=19 THEN
  166.     Text$="nineteen"
  167.     Text2$="nyyyynteeeene"
  168.   ELSEIF Code=20 THEN
  169.     Text$="twenty"
  170.     Text2$="twenty"
  171.   ELSEIF Code=21 THEN
  172.     Text$="twenty-one"
  173.     Text2$="twenty-one"
  174.   END IF
  175. RETURN
  176.  
  177. HitPlayer:
  178.   CardX=CardXLoc(YourCardCount+1)
  179.   CardY=13
  180.   Points=-(Deck(NextCard,1)+1)+15
  181.   GOSUB AddYourPoints
  182.   GOSUB DisplayCard
  183.   YourCardCount=YourCardCount+1
  184.   GOSUB UpdateHandTotal
  185.   IF YourHand1>21 THEN
  186.     Message$="You're busted!"
  187.     GOSUB PrintIt
  188.     IF Speech$="ON" THEN SAY TRANSLATE$("You are busted"),VoiceParm
  189.     Turn=3
  190.     YourTotal&=YourTotal&-Bet
  191.     GOSUB UpdateScore  
  192.   END IF
  193. RETURN
  194.  
  195. HitDealer: 
  196.   CardX=CardXLoc(MyCardCount+1)
  197.   CardY=92
  198.   Points=-(Deck(NextCard,1)+1)+15
  199.   GOSUB AddMyPoints
  200.   GOSUB DisplayCard
  201.   MyCardCount=MyCardCount+1
  202.   IF MyHand1>21 THEN
  203.     Message$="I'm busted!"
  204.     GOSUB PrintIt
  205.     IF Speech$="ON" THEN SAY TRANSLATE$("I am busted"),VoiceParm
  206.     Turn=3
  207.     YourTotal&=YourTotal&+Bet
  208.     GOSUB UpdateScore  
  209.   END IF
  210. RETURN
  211.  
  212. FiveCardCharlieYou:
  213.   Message$="You win with a five card Charlie"
  214.   GOSUB PrintIt
  215.   IF Speech$="ON" THEN SAY TRANSLATE$("You win with a five card Charley"),VoiceParm
  216.   YourTotal&=YourTotal&+Bet
  217.   GOSUB UpdateScore
  218. RETURN
  219.       
  220. FiveCardCharlieMe:
  221.   Message$="I win with a five card Charlie"
  222.   GOSUB PrintIt
  223.   IF Speech$="ON" THEN SAY TRANSLATE$("I win with a five card Charley"),VoiceParm
  224.   YourTotal&=YourTotal&-Bet
  225.   GOSUB UpdateScore
  226. RETURN
  227.       
  228. WaitForTapOnDeck:
  229.   IF MOUSE(0)=0 THEN WaitForTapOnDeck
  230.   WHILE MOUSE(0)<>0
  231.   WEND
  232.   X=MOUSE(1)
  233.   Y=MOUSE(2)
  234.   IF X<6 OR X>114 OR Y<3 OR Y>70 THEN WaitForTapOnDeck
  235. RETURN  
  236.   
  237. TestForBlackjack:
  238.   BJ$="NO"
  239.   IF YourHand2=21 AND MyHand2<>21 THEN
  240.     YourHand1=YourHand2
  241.     GOSUB UpdateHandTotal
  242.     Message$="You get double your bet for blackjack!"
  243.     GOSUB PrintIt
  244.     IF Speech$="ON" THEN SAY TRANSLATE$(Message$),VoiceParm
  245.     Turn=3
  246.     YourTotal&=YourTotal&+2*Bet
  247.   ELSEIF YourHand2<>21 AND MyHand2=21 THEN
  248.     GOSUB FlipDownCard
  249.     Message$="I have Blackjack -- You lose!"
  250.     GOSUB PrintIt
  251.     IF Speech$="ON" THEN SAY TRANSLATE$(Message$),VoiceParm
  252.     Turn=3
  253.     YourTotal&=YourTotal&-Bet
  254.     BJ$="YES"  
  255.   ELSEIF YourHand2=21 AND MyHand2=21 THEN
  256.     YourHand1=YourHand2
  257.     GOSUB UpdateHandTotal
  258.     GOSUB FlipDownCard
  259.     Message$="We both have blackjack -- Since it's a push I win!"
  260.     GOSUB PrintIt
  261.     IF Speech$="ON" THEN SAY TRANSLATE$(Message$),VoiceParm
  262.     Turn=3  
  263.     YourTotal&=YourTotal&-Bet
  264.     BJ$="YES"
  265.   END IF
  266.   GOSUB UpdateScore
  267. RETURN
  268.  
  269. MenuHandler:
  270.   MENU OFF
  271.   MenuColumn=MENU(0)
  272.   MenuItem=MENU(1)
  273.   IF MenuColumn=1 THEN
  274.     IF MenuItem=1 THEN
  275.       IF Speech$="ON" THEN
  276.         SAY TRANSLATE$("I will shut upp"),VoiceParm
  277.         Speech$="OFF"
  278.         MENU 1,1,1,"  Turn Speech On          "
  279.       ELSE
  280.         SAY TRANSLATE$("I am back"),VoiceParm
  281.         Speech$="ON"
  282.         MENU 1,1,1,"  Turn Speech Off         "
  283.       END IF
  284.     ELSEIF MenuItem=2 THEN
  285.       IF Sounds$="ON" THEN
  286.         IF Speech$="ON" THEN SAY TRANSLATE$("I have shut off the sound ahfects"),VoiceParm
  287.         Sounds$="OFF"
  288.         MENU 1,2,1,"  Turn Sound Effects On   "
  289.       ELSE
  290.         IF Speech$="ON" THEN SAY TRANSLATE$("I have turned the sound ahfects back on"),VoiceParm
  291.         Sounds$="ON"
  292.         MENU 1,2,1,"  Turn Sound Effects Off  "
  293.       END IF
  294.     ELSEIF MenuItem=3 THEN
  295.       Text$="start over with one hundred dollars."
  296.       GOSUB AreYouSure
  297.       IF Response$="YES" THEN
  298.         YourTotal&=100
  299.         GOSUB UpdateScore
  300.         GOSUB NewHand
  301.         GOSUB UpdateBet
  302.         GOSUB UpdateHandTotal
  303.         GOSUB EraseCardWindows
  304.         MENU ON
  305.         GOTO Replay
  306.       END IF
  307.     ELSEIF MenuItem=4 THEN
  308.       Text$="quit the program."
  309.       GOSUB AreYouSure
  310.       IF Response$="YES" THEN SYSTEM
  311.     END IF
  312.   ELSE
  313.     IF MenuItem=1 THEN 
  314.       GOSUB Instructions
  315.     ELSE
  316.       GOSUB PlugAuthor
  317.     END IF
  318.   END IF
  319.   MENU ON
  320. RETURN
  321.  
  322. PlugAuthor:
  323.   WINDOW 3,"                      Author's Plug",(80,50)-(550,152),0
  324.   COLOR 2,1
  325.   CLS
  326.   PRINT
  327.   PRINT "   This Amiga blackjack game was conceived and written"
  328.   PRINT "   by L. C. Teter, a gamester who lives in Harvey"
  329.   PRINT "   Louisiana."
  330.   PRINT 
  331.   PRINT "   This program has been placed in the public domain"
  332.   PRINT "   for the enjoyment of anyone who wants to play with"
  333.   PRINT "   it.  Any commercial use of this program is strictly"
  334.   PRINT "   a no-no."
  335.   PRINT
  336.   PRINT
  337.   COLOR 3,1
  338.   PRINT "        -- Press left mouse button to continue --";
  339.   WHILE MOUSE(0)=0
  340.   WEND
  341.   WHILE MOUSE(0)<>0
  342.   WEND
  343.   WINDOW CLOSE 3
  344. RETURN
  345.  
  346. Instructions:
  347.   WINDOW 3,"                             It's Like This . . .",(0,0)-(631,186),0
  348.   COLOR 2,1
  349.   CLS
  350.   PRINT
  351.   PRINT " This is a straightforward blackjack game in which you pit yourself against"
  352.   PRINT " the Amiga which plays the role of the dealer.  The object of the game is to"
  353.   PRINT " make as much money as possible by coming closer to 21, without going over,"
  354.   PRINT " than the dealer.  Face cards count for ten points, aces may be either one or"
  355.   PRINT " eleven points, and all other cards have a value equal to the number on the"
  356.   PRINT " card."
  357.   PRINT
  358.   PRINT " Before each hand you must place a bet.  Any dollar amount from one to one"
  359.   PRINT " hundred dollars is acceptable.  Loose change is not permitted.  In the event"
  360.   PRINT " that you come closer to twenty-one than the dealer, you will have an amount"
  361.   PRINT " equal to your bet added to your bank.  Likewise if you go over twenty-one, or"
  362.   PRINT " the dealer comes closer to twenty-one than you, or the dealer has blackjack"
  363.   PRINT " (a card with a value of ten plus an ace), then an amount equal to your bet is"
  364.   PRINT " subtracted from your bank.  In the event of a push, a situation in which you"
  365.   PRINT " and the dealer end up with the same number of points, the dealer wins the"
  366.   PRINT " bet.  In the event that you have a blackjack you will receive double your"
  367.   PRINT " bet.  If either you or the dealer gets five cards and doesn't go over twenty-"
  368.   PRINT " one, a situation known as a 'Five Card Charlie', that player immediately wins"
  369.   PRINT " the bet for that hand.  To help you get started your bank initially contains"
  370.   PRINT " one hundred dollars."
  371.   PRINT
  372.   COLOR 3,1
  373.   PRINT "                   -- Press left mouse button to continue --";
  374.   WHILE MOUSE(0)=0
  375.   WEND
  376.   WHILE MOUSE(0)<>0
  377.   WEND
  378.   COLOR 2,1
  379.   CLS
  380.   PRINT
  381.   PRINT " After you have placed your bet the Amiga deals the cards.  You are able to"
  382.   PRINT " see both of your cards but not the dealer's down card.  To 'take a hit' click"
  383.   PRINT " in the window containing the deck.  If you are satisfied with your hand and"
  384.   PRINT " and want to stand then click in the window with the stop sign.  After you"
  385.   PRINT " stand the Amiga takes its turn.  It has no knowledge of the total of your"
  386.   PRINT " cards.  It will look at the total of its cards and take a hit if that total"
  387.   PRINT " is sixteen or lower.  After the Amiga completes its hand the winner is"
  388.   PRINT " declared and your bank total adjusted accordingly."
  389.   PRINT
  390.   PRINT " To start the next hand click again on the window containing the deck."
  391.   PRINT
  392.   PRINT " If you get irritated with the speech output or sound effects you may turn"
  393.   PRINT " either or both of them off in the 'Actions' menu.  Also, if you get"
  394.   PRINT " disgusted with your bank total you can start over with one hundred dollars"
  395.   PRINT " by selecting 'Start Over' from the same menu."
  396.   PRINT 
  397.   PRINT " When you have had your fill of blackjack and want to return to workbench or"
  398.   PRINT " CLI then select 'Quit' from the 'Actions' menu.  If you quit with a negative"
  399.   PRINT " bank total you will be prompted for a credit card number (just kidding)."
  400.   PRINT " Enjoy."
  401.   PRINT
  402.   COLOR 3,1
  403.   PRINT "                   -- Press left mouse button to continue --";   
  404.   WHILE MOUSE(0)=0
  405.   WEND
  406.   WHILE MOUSE(0)<>0
  407.   WEND  
  408.   WINDOW CLOSE 3
  409. RETURN
  410.  
  411. AreYouSure:
  412.   WINDOW 3,"                   Warning!",(50,24)-(450,115),0
  413.   COLOR 1,3
  414.   CLS
  415.   LOCATE 2,5
  416.   PRINT "You are about to wipe out this game and";
  417.   LOCATE 3,5
  418.   PRINT Text$;
  419.   LOCATE 5,5
  420.   PRINT "Are you sure you want to do this?";
  421.   LINE (15,58)-(175,76),2,bf
  422.   LINE (203,58)-(385,76),2,bf
  423.   LINE (17,59)-(173,75),1,bf
  424.   LINE (205,59)-(383,75),1,bf
  425.   COLOR 2,1
  426.   LOCATE 9,5
  427.   PRINT "No -- Forget It!";
  428.   LOCATE 9,30
  429.   PRINT "Yeah -- Go Ahead";
  430. WaitForAnswer:
  431.   IF MOUSE(0)=0 THEN WaitForAnswer
  432.   WHILE MOUSE(0)<>0
  433.   WEND
  434.   X=MOUSE(1)
  435.   Y=MOUSE(2)
  436.   IF Y>58 AND Y<76 THEN
  437.     IF X>15 AND X<175 THEN
  438.       Response$="NO"
  439.       WINDOW CLOSE 3
  440.       RETURN
  441.     ELSEIF X>203 AND X<385 THEN
  442.       Response$="YES"
  443.       WINDOW CLOSE 3
  444.       RETURN
  445.     END IF
  446.   END IF  
  447.   GOTO WaitForAnswer  
  448. RETURN
  449.  
  450. InitializeMenu:
  451.   MENU 1,0,1,"     Actions     "
  452.   MENU 1,1,1,"  Turn Speech Off        "
  453.   MENU 1,2,1,"  Turn Sound Effects Off " 
  454.   MENU 1,3,1,"  Start Over             "
  455.   MENU 1,4,1,"  Quit                   "
  456.   MENU 2,0,1,"     Information     "
  457.   MENU 2,1,1,"  How to Play      "
  458.   MENU 2,2,1,"  About the Author "
  459.   MENU 3,0,1,""
  460.   MENU 4,0,1,""
  461. RETURN
  462.  
  463. InitializeVariables:
  464.   SAY TRANSLATE$("")
  465.   Speech$="ON"
  466.   Sounds$="ON"
  467.   YourTotal&=100
  468.   BugZapper=1000
  469.   CardXLoc(1)=147
  470.   CardXLoc(2)=242
  471.   CardXLoc(3)=337
  472.   CardXLoc(4)=432
  473.   CardXLoc(5)=527
  474.   FOR I=0 TO 255
  475.     Timbre(I)=-128+(RND(1)*255)
  476.   NEXT I
  477.   WAVE 0,Timbre
  478.   WAVE 1,SIN
  479.   ERASE Timbre  
  480.   VoiceParm(0)=90
  481.   VoiceParm(1)=1
  482.   VoiceParm(2)=170
  483.   VoiceParm(3)=0
  484.   VoiceParm(4)=20000
  485.   VoiceParm(5)=64
  486.   VoiceParm(6)=7
  487.   VoiceParm(7)=0
  488.   VoiceParm(8)=0
  489.   NextCard=0
  490.   FOR I=0 TO 3
  491.     FOR J=0 TO 12
  492.       Deck(I*13+J,0)=I
  493.       Deck(I*13+J,1)=J
  494.     NEXT J
  495.   NEXT I
  496. NewHand:
  497.   YourCardCount=0
  498.   MyCardCount=0  
  499.   YourHand1=0
  500.   YourHand2=0
  501.   MyHand1=0
  502.   MyHand2=0
  503.   Bet=0
  504. RETURN
  505.  
  506. DealNewGame:
  507.   IF NextCard>=42 THEN GOSUB ShuffleDeck
  508.   CardX=CardXLoc(1)
  509.   CardY=13
  510.   Points=-(Deck(NextCard,1)+1)+15
  511.   GOSUB AddYourPoints
  512.   GOSUB DisplayCard
  513.   Points=-(Deck(NextCard,1)+1)+15
  514.   GOSUB AddYourPoints  
  515.   CardX=CardXLoc(2)
  516.   GOSUB DisplayCard
  517.   YourCardCount=2
  518.   Points=-(Deck(NextCard,1)+1)+15
  519.   GOSUB AddMyPoints  
  520.   DownCard0=Deck(NextCard,0)
  521.   DownCard1=Deck(NextCard,1)
  522.   XTarget=CardXLoc(1)
  523.   YTarget=92
  524.   OBJECT.X 1,17
  525.   OBJECT.Y 1,13
  526.   OBJECT.ON 1
  527.   FOR I=17 TO XTarget STEP 3
  528.     YDeal=((YTarget-13)/(XTarget-17))*(I-17)+13
  529.     OBJECT.X 1,I
  530.     OBJECT.Y 1,YDeal
  531.   NEXT I
  532.   OBJECT.OFF 1  
  533.   PUT (CardXLoc(1),92),CardBack,PSET
  534.   IF Sounds$="ON" THEN GOSUB CardNoise
  535.   FOR I=1 TO BugZapper
  536.   NEXT I
  537.   NextCard=NextCard+1
  538.   Points=-(Deck(NextCard,1)+1)+15
  539.   GOSUB AddMyPoints    
  540.   CardY=92
  541.   GOSUB DisplayCard
  542.   MyCardCount=2  
  543.   GOSUB UpdateHandTotal
  544. RETURN
  545.  
  546. CardNoise:
  547.   SOUND WAIT
  548.   SOUND 20,1,125,0
  549.   SOUND 90,1,125,1
  550.   SOUND RESUME
  551. RETURN 
  552.  
  553. AddYourPoints:
  554.   IF Points=14 THEN 
  555.     YourHand1=YourHand1+1
  556.     YourHand2=YourHand2+11
  557.     IF YourHand2>21 THEN YourHand2=YourHand2-10
  558.   ELSEIF Points>10 THEN
  559.     YourHand1=YourHand1+10
  560.     YourHand2=YourHand2+10   
  561.   ELSE
  562.     YourHand1=YourHand1+Points
  563.     YourHand2=YourHand2+Points
  564.   END IF
  565. RETURN
  566.                   
  567. AddMyPoints:
  568.   IF Points=14 THEN 
  569.     MyHand1=MyHand1+1
  570.     MyHand2=MyHand2+11
  571.     IF MyHand2>21 THEN MyHand2=MyHand2-10   
  572.   ELSEIF Points>10 THEN
  573.     MyHand1=MyHand1+10
  574.     MyHand2=MyHand2+10
  575.   ELSE
  576.     MyHand1=MyHand1+Points
  577.     MyHand2=MyHand2+Points
  578.   END IF
  579. RETURN
  580.  
  581. EraseCardWindows:
  582.   LINE (138,13)-(623,70),0,bf
  583.   LINE (138,92)-(623,149),0,bf
  584. RETURN
  585.   
  586.   
  587. SetUpWindow:
  588.   LINE (0,0)-(640,200),2,bf        
  589.   LINE (0,0)-(120,73),1,bf         
  590.   LINE (5,2)-(115,71),0,bf
  591.   LINE (0,79)-(120,152),1,bf      
  592.   LINE (5,81)-(115,150),0,bf
  593.   LINE (132,0)-(629,73),1,bf     
  594.   LINE (137,2)-(624,71),0,bf
  595.   LINE (132,79)-(629,152),1,bf     
  596.   LINE (137,81)-(624,150),0,bf
  597.   GOSUB GetTitles
  598.   WINDOW CLOSE 1
  599.   PUT (30,4),DeckTitle,PSET
  600.   PUT (341,4),YourTitle,PSET
  601.   PUT (350,83),MyTitle,PSET
  602.   PUT (41,83),StandTitle,PSET 
  603.   ERASE DeckTitle,YourTitle,MyTitle,StandTitle
  604.   PUT (17,95),StopSign,PSET
  605.   ERASE StopSign
  606.   GOSUB MakeCardBack
  607. RETURN
  608.  
  609. MessageSetUp:
  610.   LINE (0,158)-(629,186),1,bf      
  611.   LINE (5,160)-(177,184),3,bf
  612.   LINE (183,158)-(193,186),2,bf   
  613.   LINE (199,160)-(624,184),3,bf    
  614.   COLOR 2,3
  615.   LOCATE 21,3
  616.   PRINT "Your Bank:";
  617.   LOCATE 22,3
  618.   PRINT "Current Wager:";
  619.   LOCATE 23,3
  620.   PRINT "Your Hand:";
  621.   GOSUB UpdateScore
  622.   GOSUB UpdateBet
  623.   GOSUB UpdateHandTotal 
  624. RETURN
  625.  
  626. UpdateScore:
  627.   COLOR 2,3
  628.   IF YourTotal&>=0 THEN
  629.     Text$="$"+MID$(STR$(YourTotal&),2)
  630.   ELSE
  631.     Text$="$"+STR$(YourTotal&)
  632.   END IF
  633.   Length=LEN(Text$)
  634.   LOCATE 21,13
  635.   PRINT "          ";
  636.   LOCATE 21,22-Length
  637.   PRINT Text$;
  638. RETURN
  639.  
  640. UpdateBet:
  641.   Text$="$"+MID$(STR$(Bet),2)
  642.   Length=LEN(Text$)
  643.   LOCATE 22,17
  644.   PRINT "      ";
  645.   LOCATE 22,22-Length
  646.   PRINT Text$;
  647. RETURN  
  648.     
  649. UpdateHandTotal:  
  650.   IF YourHand1<>YourHand2 AND YourHand2<22 THEN
  651.     Text$=STR$(YourHand1)+" or"+STR$(YourHand2)
  652.   ELSE
  653.     Text$=STR$(YourHand1)
  654.   END IF
  655.   Length=LEN(Text$)
  656.   LOCATE 23,14
  657.   PRINT "         ";
  658.   LOCATE 23,22-Length
  659.   PRINT Text$;
  660. RETURN    
  661.   
  662. AnteUp:
  663.   Message$="Place your bet:  $"
  664.   GOSUB PrintIt
  665.   IF Speech$="ON" THEN SAY TRANSLATE$(",,aannntteeee up sucker"),VoiceParm
  666.   INPUT "",Wager!
  667.   IF Wager!<1 THEN
  668.     Message$="I don't mess with change -- The minimum bid is $1"
  669.     GOSUB PrintIt   
  670.     IF Speech$="ON" THEN SAY TRANSLATE$("Commme onn! We ain't playin for chicken feed here. The minimum bet is a dollar!"),VoiceParm
  671.     FOR I=1 TO 15000
  672.     NEXT I
  673.     GOTO AnteUp
  674.   ELSEIF Wager!>100 THEN
  675.     Message$="I'm not made of money -- The house limit is $100"
  676.     GOSUB PrintIt  
  677.     IF Speech$="ON" THEN SAY TRANSLATE$("Forget ittt. This ain't Montey Carlo. The howsse limmmit here is a hundred bucks"),VoiceParm
  678.     FOR I=1 TO 15000
  679.     NEXT I
  680.     GOTO AnteUp
  681.   ELSEIF Wager!-INT(Wager!)<>0 THEN
  682.     Message$="I don't like loose change.  Use multiples of $1."
  683.     GOSUB PrintIt
  684.     IF Speech$="ON" THEN SAY TRANSLATE$("I don't like loose change.  Use multiples of a dollar."),VoiceParm
  685.     FOR I=1 TO 15000
  686.     NEXT I
  687.     GOTO AnteUp
  688.   END IF
  689.   Bet=Wager!
  690.   GOSUB UpdateBet
  691.   Message$=""
  692.   GOSUB PrintIt  
  693. RETURN
  694.  
  695. MessageWipe:
  696.   COLOR 2,3
  697.   LOCATE 22,26
  698.   PRINT "                                                     ";  
  699. RETURN
  700.  
  701. PrintIt:
  702.   GOSUB MessageWipe
  703.   Length=LEN(Message$)
  704.   LOCATE 22,52-Length\2
  705.   PRINT Message$;
  706. RETURN
  707.  
  708. Logo:
  709.   PALETTE 3,0.7,0.1,0.1
  710.   WINDOW 2,"                                  Blackjack",(0,0)-(631,186),20
  711.   LOCATE 9,32
  712.   PRINT "AMIGA Blackjack";
  713.   LOCATE 11,38
  714.   PRINT "by";
  715.   LOCATE 13,34
  716.   PRINT "L. C. Teter";
  717.   SAY TRANSLATE$("Please stand by while I set things up"),VoiceParm
  718. RETURN
  719.  
  720. MakeCardBack:
  721.   LINE (21,13)-(100,13),2
  722.   LINE (19,14)-(102,14),2
  723.   LINE (18,15)-(22,15),2   : LINE (99,15)-(103,15),2
  724.   LINE (17,16)-(21,64),2,bf
  725.   LINE (100,16)-(104,64),2,bf
  726.   LINE (18,65)-(22,65),2 : LINE (99,65)-(103,65),2
  727.   LINE (19,66)-(102,66),2
  728.   LINE (21,67)-(100,67),2
  729.   DIM Pat(3)
  730.   Pat(0)=&H9249
  731.   Pat(1)=&H4992
  732.   Pat(2)=&H9249
  733.   Pat(3)=&H4992
  734.   PATTERN ,Pat
  735.   PAINT (37,29),3,2
  736.   FOR I=0 TO 3
  737.     Pat(I)=&Hffff
  738.   NEXT I
  739.   PATTERN &Hffff,Pat
  740.   ERASE Pat
  741.   GET (17,13)-(104,67),CardBack
  742. RETURN
  743.  
  744. GetTitles:
  745.   WINDOW OUTPUT 1
  746.   CLS
  747.   COLOR 1,0
  748.   LOCATE 1,1
  749.   PRINT "The Deck";
  750.   GET (0,0)-(63,7),DeckTitle
  751.   CLS
  752.   LOCATE 1,1
  753.   PRINT "Your Cards";
  754.   GET (0,0)-(79,7),YourTitle
  755.   CLS
  756.   LOCATE 1,1
  757.   PRINT "My Cards"
  758.   GET (0,0)-(63,7),MyTitle
  759.   CLS
  760.   LOCATE 1,1
  761.   PRINT "Stand"
  762.   GET (0,0)-(44,7),StandTitle
  763.   CLS
  764.   WINDOW OUTPUT 2  
  765. RETURN
  766.  
  767. BurnCard:
  768.   CardX=17
  769.   CardY=13
  770.   IF Deck(NextCard,1)=0 THEN Text$="an ace"
  771.   IF Deck(NextCard,1)=1 THEN Text$="a king"
  772.   IF Deck(NextCard,1)=2 THEN Text$="a queen"
  773.   IF Deck(NextCard,1)=3 THEN Text$="a jack"
  774.   IF Deck(NextCard,1)=4 THEN Text$="a ten"
  775.   IF Deck(NextCard,1)=5 THEN Text$="a nine"
  776.   IF Deck(NextCard,1)=6 THEN Text$="an eight"
  777.   IF Deck(NextCard,1)=7 THEN Text$="a seven"
  778.   IF Deck(NextCard,1)=8 THEN Text$="a six"
  779.   IF Deck(NextCard,1)=9 THEN Text$="a five"
  780.   IF Deck(NextCard,1)=10 THEN Text$="a four"
  781.   IF Deck(NextCard,1)=11 THEN Text$="a three"
  782.   IF Deck(NextCard,1)=12 THEN Text$="a deuce"
  783.   GOSUB DisplayBurnCard
  784.   Message$="Burning "+Text$
  785.   GOSUB PrintIt  
  786.   IF Speech$="ON" THEN SAY TRANSLATE$(Message$),VoiceParm
  787.   FOR I=1 TO 8000
  788.   NEXT I
  789.   GOSUB MessageWipe
  790.   PUT (17,13),CardBack,PSET
  791.   IF Sounds$="ON" THEN GOSUB CardNoise
  792.   FOR I=1 TO BugZapper
  793.   NEXT I
  794. RETURN 
  795.  
  796. DisplayCard:
  797.   XTarget=CardX
  798.   YTarget=CardY
  799.   OBJECT.X 1,17
  800.   OBJECT.Y 1,13
  801.   OBJECT.ON 1
  802.   FOR I=17 TO XTarget STEP 5
  803.     YDeal=((YTarget-13)/(XTarget-17))*(I-17)+13
  804.     OBJECT.X 1,I
  805.     OBJECT.Y 1,YDeal
  806.   NEXT I
  807.   OBJECT.OFF 1
  808. DisplayBurnCard:  
  809.   PUT (CardX,CardY),card,PSET
  810.   PUT (CardX+26,CardY+16),BigSuit(0,Deck(NextCard,0)),PSET
  811.   PUT (CardX+5,CardY+12),LittleSuit(0,Deck(NextCard,0)),PSET
  812.   PUT (CardX+68,CardY+32),LittleSuit(0,Deck(NextCard,0)),PSET
  813.   PUT (CardX+8,CardY+3),Values(0,Deck(NextCard,1)),PSET
  814.   PUT (CardX+72,CardY+44),Values(0,Deck(NextCard,1)),PSET
  815.   IF Sounds$="ON" THEN GOSUB CardNoise
  816.   FOR I=1 TO BugZapper
  817.   NEXT I  
  818.   NextCard=NextCard+1
  819. RETURN
  820.  
  821. FlipDownCard:
  822.   CardX=CardXLoc(1)
  823.   CardY=92
  824.   PUT (CardX,CardY),card,PSET
  825.   PUT (CardX+26,CardY+16),BigSuit(0,DownCard0),PSET
  826.   PUT (CardX+5,CardY+12),LittleSuit(0,DownCard0),PSET
  827.   PUT (CardX+68,CardY+32),LittleSuit(0,DownCard0),PSET
  828.   PUT (CardX+8,CardY+3),Values(0,DownCard1),PSET
  829.   PUT (CardX+72,CardY+44),Values(0,DownCard1),PSET
  830.   IF Sounds$="ON" THEN GOSUB CardNoise
  831.   FOR I=1 TO BugZapper
  832.   NEXT I  
  833. RETURN
  834.  
  835. ShuffleDeck:
  836.   IF Pass<>1 THEN
  837.     LINE (17,13)-(104,67),0,bf
  838.     LOCATE 5,4
  839.     COLOR 1,0
  840.     PRINT "Shuffling"
  841.   END IF
  842.   FOR M=1 TO 3
  843.     FOR I=51 TO 0 STEP -1
  844.       J=INT(RND*I)+1
  845.       K=Deck(J,0)
  846.       L=Deck(J,1)
  847.       Deck(J,0)=Deck(I,0)
  848.       Deck(J,1)=Deck(I,1)
  849.       Deck(I,0)=K
  850.       Deck(I,1)=L
  851.     NEXT I
  852.   NEXT M
  853.   PUT (17,13),CardBack,PSET
  854.   NextCard=0
  855.   IF Pass<>1 THEN GOSUB BurnCard
  856. RETURN
  857.  
  858. ReadGraphics:
  859.   OPEN "Card.Back" FOR INPUT AS 1
  860.   OBJECT.SHAPE 1,INPUT$(LOF(1),1)
  861.   CLOSE 1
  862.   FOR I=0 TO 662
  863.     READ card(I)
  864.   NEXT I
  865.   FOR I=0 TO 12
  866.     FOR J=0 TO 18
  867.       READ Values(J,I)
  868.     NEXT J
  869.   NEXT I
  870.   FOR I=0 TO 3
  871.     FOR J=0 TO 140
  872.       READ BigSuit(J,I)
  873.     NEXT J
  874.   NEXT I
  875.   FOR I=0 TO 3
  876.     FOR J=0 TO 24
  877.       READ LittleSuit(J,I)
  878.     NEXT J
  879.   NEXT I
  880.   FOR I=0 TO 662
  881.     READ StopSign(I)
  882.   NEXT I
  883.   'DELETE BeginDataCards-EndDataCards
  884. RETURN
  885.  
  886. DATA 88,55,2,4095,-1,-1,-1,-1,-4096,16383,-1,-1,-1,-1,-1024,32767,-1,-1,-1
  887. DATA -1,-512,-1,-1,-1,-1,-1,-256,-1,-1,-1,-1,-1,-256,-1,-1,-1,-1,-1,-256,-1
  888. DATA -1,-1,-1,-1,-256,-1,-1,-1,-1,-1,-256,-1,-1,-1,-1,-1,-256,-1,-1,-1,-1,-1
  889. DATA -256,-1,-1,-1,-1,-1,-256,-1,-1,-1,-1,-1,-256,-1,-1,-1,-1,-1,-256,-1
  890. DATA -256,0,0,-1,-256,-1,-193,-1,-4,-1,-256,-1,-193,-1,-4,-1,-256,-1,-193,-1
  891. DATA -4,-1,-256,-1,-193,-1,-4,-1,-256,-1,-193,-1,-4,-1,-256,-1,-193,-1,-4,-1
  892. DATA -256,-1,-193,-1,-4,-1,-256,-1,-193,-1,-4,-1,-256,-1,-193,-1,-4,-1,-256
  893. DATA -1,-193,-1,-4,-1,-256,-1,-193,-1,-4,-1,-256,-1,-193,-1,-4,-1,-256,-1
  894. DATA -193,-1,-4,-1,-256,-1,-193,-1,-4,-1,-256,-1,-193,-1,-4,-1,-256,-1,-193
  895. DATA -1,-4,-1,-256,-1,-193,-1,-4,-1,-256,-1,-193,-1,-4,-1,-256,-1,-193,-1,-4
  896. DATA -1,-256,-1,-193,-1,-4,-1,-256,-1,-193,-1,-4,-1,-256,-1,-193,-1,-4,-1
  897. DATA -256,-1,-193,-1,-4,-1,-256,-1,-193,-1,-4,-1,-256,-1,-193,-1,-4,-1,-256
  898. DATA -1,-193,-1,-4,-1,-256,-1,-193,-1,-4,-1,-256,-1,-256,0,0,-1,-256,-1,-1
  899. DATA -1,-1,-1,-256,-1,-1,-1,-1,-1,-256,-1,-1,-1,-1,-1,-256,-1,-1,-1,-1,-1
  900. DATA -256,-1,-1,-1,-1,-1,-256,-1,-1,-1,-1,-1,-256,-1,-1,-1,-1,-1,-256,-1,-1
  901. DATA -1,-1,-1,-256,-1,-1,-1,-1,-1,-256,-1,-1,-1,-1,-1,-256,32767,-1,-1,-1,-1
  902. DATA -512,16383,-1,-1,-1,-1,-1024,4095,-1,-1,-1,-1,-4096,0,0,0,0,0,0,0,0,0,0
  903. DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  904. DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255
  905. DATA -1,-1,0,0,0,192,0,3,0,0,0,192,0,3,0,0,0,192,0,3,0,0,0,192,0,3,0,0,0,192
  906. DATA 0,3,0,0,0,192,0,3,0,0,0,192,0,3,0,0,0,192,0,3,0,0,0,192,0,3,0,0,0,192,0
  907. DATA 3,0,0,0,192,0,3,0,0,0,192,0,3,0,0,0,192,0,3,0,0,0,192,0,3,0,0,0,192,0,3
  908. DATA 0,0,0,192,0,3,0,0,0,192,0,3,0,0,0,192,0,3,0,0,0,192,0,3,0,0,0,192,0,3,0
  909. DATA 0,0,192,0,3,0,0,0,192,0,3,0,0,0,192,0,3,0,0,0,192,0,3,0,0,0,192,0,3,0,0
  910. DATA 0,192,0,3,0,0,0,192,0,3,0,0,0,255,-1,-1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  911. DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  912. DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,8,8,2,-6400
  913. DATA -15616,-15616,-26368,-32512,15360,15360,-256,6144,15360,15360,26112
  914. DATA 32256,-15616,-15616,0,8,8,2,6400,-26368,-27904,-30976,-27904,-26368
  915. DATA 6400,-256,-6656,26112,27648,30720,27648,26112,-6656,0,8,8,2,-14592
  916. DATA -27904,14592,14592,14592,-27904,-15616,-1792,14336,27648,-14848,-14848
  917. DATA -14848,27648,15360,1536,8,8,2,-3840,-1792,-1792,-1792,-26368,-26368
  918. DATA -15616,-256,3584,1536,1536,1536,26112,26112,15360,0,8,8,2,-32512,-23296
  919. DATA -6400,-6400,-6400,-6400,-15616,-256,32256,23040,6144,6144,6144,6144
  920. DATA 15360,0,8,8,2,-15616,-26368,-26368,-16128,-1792,-3328,-14592,-256,15360
  921. DATA 26112,26112,15872,1536,3072,14336,0,8,8,2,-15616,-26368,-26368,-15616
  922. DATA -26368,-26368,-15616,-256,15360,26112,26112,15360,26112,26112,15360,0,8
  923. DATA 8,2,-32512,-26368,-1792,-3328,-6400,-6400,-6400,-256,32256,26112,1536
  924. DATA 3072,6144,6144,6144,0,8,8,2,-7424,-12544,-24832,-32000,-26368,-26368
  925. DATA -15616,-256,7168,12288,24576,31744,26112,26112,15360,0,8,8,2,-32512
  926. DATA -24832,-32000,-1792,-1792,-26368,-15616,-256,32256,24576,31744,1536
  927. DATA 1536,26112,15360,0,8,8,2,-7424,-15616,-27904,13056,256,-3328,-7936,-256
  928. DATA 7168,15360,27648,-13312,-512,3072,7680,0,8,8,2,-15616,-26368,-1792
  929. DATA -7424,-1792,-26368,-15616,-256,15360,26112,1536,7168,1536,26112,15360,0
  930. DATA 8,8,2,-15616,-26368,-1792,-7424,-12544,-26368,-32512,-256,15360,26112
  931. DATA 1536,7168,12288,26112,32256,0,36,23,2,-1,-1,-4096,-1,-1,-4096,-1,-1
  932. DATA -4096,-1,-1,-4096,-1,-1,-4096,-1,-1,-4096,-1,-1,-4096,-1,-1,-4096,-1,-1
  933. DATA -4096,-1,-1,-4096,-1,-1,-4096,-1,-1,-4096,-1,-1,-4096,-1,-1,-4096,-1,-1
  934. DATA -4096,-1,-1,-4096,-1,-1,-4096,-1,-1,-4096,-1,-1,-4096,-1,-1,-4096,-1,-1
  935. DATA -4096,-1,-1,-4096,-1,-1,-4096,252,504,0,1023,2046,0,4095,-28673,-32768
  936. DATA 4095,-8193,-32768,8191,-1,-16384,8191,-1,-16384,8191,-1,-16384,8191,-1
  937. DATA -16384,4095,-1,-32768,4095,-1,-32768,2047,-1,0,1023,-2,0,511,-4,0,255
  938. DATA -8,0,127,-16,0,63,-32,0,31,-64,0,15,-128,0,7,-256,0,3,-512,0,1,-1024,0
  939. DATA 0,-2048,0,0,28672,0,36,23,2,-1,-16385,-4096,-1,8191,-4096,-2,4095,-4096
  940. DATA -4,2047,-4096,-16,511,-4096,-32,255,-4096,-64,127,-4096,-128,63,-4096
  941. DATA -512,15,-4096,-1024,7,-4096,-2048,3,-4096,-4096,1,-4096,-8192,0,-4096
  942. DATA -16384,0,28672,-16384,0,28672,-16384,0,28672,-8192,0,-4096,-2048,3
  943. DATA -4096,-510,2063,-4096,-2,4095,-4096,-2,4095,-4096,-4,2047,-4096,-8,1023
  944. DATA -4096,0,16384,0,0,-8192,0,1,-4096,0,3,-2048,0,15,-512,0,31,-256,0,63
  945. DATA -128,0,127,-64,0,511,-16,0,1023,-8,0,2047,-4,0,4095,-2,0,8191,-1,0
  946. DATA 16383,-1,-32768,16383,-1,-32768,16383,-1,-32768,8191,-1,0,2047,-4,0,509
  947. DATA -2064,0,1,-4096,0,1,-4096,0,3,-2048,0,7,-1024,0,36,23,2,-1,-1,-4096,-1
  948. DATA -1,-4096,-1,-1,-4096,-1,-1,-4096,-1,-1,-4096,-1,-1,-4096,-1,-1,-4096,-1
  949. DATA -1,-4096,-1,-1,-4096,-1,-1,-4096,-1,-1,-4096,-1,-1,-4096,-1,-1,-4096,-1
  950. DATA -1,-4096,-1,-1,-4096,-1,-1,-4096,-1,-1,-4096,-1,-1,-4096,-1,-1,-4096,-1
  951. DATA -1,-4096,-1,-1,-4096,-1,-1,-4096,-1,-1,-4096,0,8192,0,0,28672,0,1,-2048
  952. DATA 0,3,-512,0,7,-256,0,31,-128,0,63,-64,0,127,-32,0,255,-8,0,1023,-4,0
  953. DATA 2047,-2,0,4095,-1,0,2047,-2,0,1023,-4,0,255,-8,0,127,-32,0,63,-64,0,15
  954. DATA -128,0,7,-256,0,3,-512,0,1,-2048,0,0,28672,0,0,8192,0,36,23,2,-2,4095
  955. DATA -4096,-16,511,-4096,-32,255,-4096,-64,127,-4096,-128,63,-4096,-128,63
  956. DATA -4096,-128,63,-4096,-64,127,-4096,-32,255,-4096,-16,511,-4096,-8,1023
  957. DATA -4096,-512,15,-4096,-2048,3,-4096,-4096,1,-4096,-4096,1,-4096,-4096,1
  958. DATA -4096,-2048,3,-4096,-512,15,-4096,-126,2111,-4096,-2,4095,-4096,-2,4095
  959. DATA -4096,-4,2047,-4096,-8,1023,-4096,1,-4096,0,15,-512,0,31,-256,0,63,-128
  960. DATA 0,127,-64,0,127,-64,0,127,-64,0,63,-128,0,31,-256,0,15,-512,0,7,-1024,0
  961. DATA 511,-16,0,2047,-4,0,4095,-2,0,4095,-2,0,4095,-2,0,2047,-4,0,511,-16,0
  962. DATA 125,-2112,0,1,-4096,0,1,-4096,0,3,-2048,0,7,-1024,0,15,11,2,-2,-2,-2,-2
  963. DATA -2,-2,-2,-2,-2,-2,-2,15480,32508,-2,-2,32764,16376,8176,4064,1984,896
  964. DATA 256,15,11,2,-898,-1986,-4066,-8178,-16378,-32766,0,0,-31678,-898,-1986
  965. DATA 896,1984,4064,8176,16376,32764,-2,-2,31676,896,1984,15,11,2,-2,-2,-2,-2
  966. DATA -2,-2,-2,-2,-2,-2,-2,896,1984,4064,8176,32764,-2,32764,8176,4064,1984
  967. DATA 896,15,11,2,-1986,-8178,-16378,-8178,-1986,-32766,0,0,-31678,-898,-1986
  968. DATA 1984,8176,16376,8176,1984,32764,-2,-2,31676,896,1984
  969. DATA 88,55,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,15,-1,-8,0,0
  970. DATA 0,63,-1,-2,0,0,0,255,-1,-1,-32768,0,0,1023,-1,-1,-8192,0,0,4095,-1,-1
  971. DATA -2048,0,0,16383,-1,-1,-512,0,0,-1,-1,-1,-128,0,3,-1,-1,-1,-32,0,15,-1
  972. DATA -1,-1,-8,0,31,-1,-1,-1,-4,0,31,-1,-1,-1,-4,0,31,-1,-1,-1,-4,0,31,-1,-1
  973. DATA -1,-4,0,31,-1,-1,-1,-4,0,31,-1,-1,-1,-4,0,31,-1,-1,-1,-4,0,31,-1,-1,-1
  974. DATA -4,0,31,-1,-1,-1,-4,0,31,-1,-1,-1,-4,0,31,-1,-1,-1,-4,0,15,-1,-1,-1,-8
  975. DATA 0,3,-1,-1,-1,-32,0,0,-1,-1,-1,-128,0,0,16383,-1,-1,-512,0,0,4095,-1,-1
  976. DATA -2048,0,0,1023,-1,-1,-8192,0,0,255,-1,-1,-32768,0,0,63,-1,-2,0,0,0,15
  977. DATA -1,-8,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  978. DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  979. DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  980. DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  981. DATA 0,0,0,0,0,0,0,0,0,0,0,0,63,-1,-2,0,0,0,255,-1,-1,-32768,0,0,1023,-1,-1
  982. DATA -8192,0,0,4095,-1,-1,-2048,0,0,16383,-1,-1,-512,0,0,32767,-1,-1,-256,0
  983. DATA 1,-1,-1,-1,-64,0,7,-1,-1,-1,-16,0,31,-1,-1,-1,-4,0,127,-1,-1,-1,-1,0
  984. DATA 255,-1,-1,-1,-1,-32768,255,-1,-1,-1,-1,-32768,255,-16,-8079,-16135,-1
  985. DATA -32768,255,-26,26980,-6544,-1,-32768,255,-29,-1586,26224,-1,-32768,255
  986. DATA -15,-1586,24825,-1,-32768,255,-4,31182,26617,-1,-32768,255,-26,31204
  987. DATA -6145,-1,-32768,255,-16,-3855,-15367,-1,-32768,255,-1,-1,-1,-1,-32768
  988. DATA 255,-1,-1,-1,-1,-32768,127,-1,-1,-1,-1,0,31,-1,-1,-1,-4,0,7,-1,-1,-1
  989. DATA -16,0,1,-1,-1,-1,-64,0,0,32767,-1,-1,-256,0,0,16383,-1,-1,-512,0,0,4095
  990. DATA -1,-1,-2048,0,0,1023,-1,-1,-8192,0,0,255,-1,-1,-32768,0,0,63,-1,-2,0,0
  991. DATA 0,0,127,0,0,0,0,0,127,0,0,0,0,0,127,0,0,0,0,0,127,0,0,0,0,0,127,0,0,0,0
  992. DATA 0,127,0,0,0,0,0,127,0,0,0,0,0,127,0,0,0,0,0,127,0,0,0,0,0,127,0,0,0,0,0
  993. DATA 127,0,0,0,0,0,127,0,0,0,0,0,127,0,0,0,0,0,127,0,0,0,0,255,-1,-1,-32768
  994. DATA 0,0,255,-1,-1,-32768,0,0,255,-1,-1,-32768,0,0,255,-1,-1,-32768,0,0,0,0
  995. DATA 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
  996.